package com.pubinfo.passbook.common.service.request.financial;

import com.alibaba.fastjson.JSONObject;
import com.mashape.unirest.http.exceptions.UnirestException;
import com.pubinfo.passbook.common.entity.TPassbook;
import com.pubinfo.passbook.common.model.bo.SubsidiaryInfo;
import com.pubinfo.passbook.common.model.dto.financial.*;

import java.io.IOException;
import java.util.List;

public interface RequestFinancialServer {
  List<TPassbook> subsidiaryBillList(String startDate, String endDate, String nsrsbh);
  
  List<TPassbook> setJson(List<TPassbook> medicalList, SubsidiaryInfo info);
  
  List<String> checkFinancial(String id);
  
  InvoiceResult<Result> detailList(List<String> eInvoiceIds, SubsidiaryInfo info, Integer pdfType);
  
  InvoiceResult<JSONObject> invoiceDetailList(JSONObject json);

  InvoiceResult<Result> detailList(String eInvoiceId) throws IOException, UnirestException;
  
  InvoiceResult detailsByParam(QueryDetailsParam detailsParam) throws IOException, UnirestException;
  
  Boolean checkId(List<String> eInvoiceIds);
  
  // InvoiceResult<Result> detailList(List<String> eInvoiceIds);
  InvoiceResult<Result> detailList(List<String> eInvoiceIds, SubsidiaryInfo info);
  
  /**
   * 批量取消票据
   *
   * @param cancelLockedRecords
   * @param reason
   * @return
   */
  InvoiceResult<Object> cancelLockedList(List<CancelLockedRecord> cancelLockedRecords, String reason);
  
  /**
   * 批量锁定票据
   *
   * @param eInvoiceIds
   * @return
   */
  Boolean lockedByEinvoiceId(String eInvoiceId) throws IOException, UnirestException;
  
  /**
   * 取上一天的数据同步
   *
   * @return
   */
  void sync(String taskId);
  
  Integer syncAll(String startDate, String endDate);
  
  Boolean cancelClaimFeed(CancelClaimFeed cancelClaimFeed);
  
  Boolean claimFeedback(FeedbackParam feedbackParam);
}






